Thread safe volani
Otázka od: Jiri Cincura
12. 8. 2004 21:11
Ahoj,
mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji pomoci
threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add, je
nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat nebude -
Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to opet
povolim.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Ludvik Vlcek
13. 8. 2004 6:38
Jiri Cincura napsal(a):
> Ahoj,
> mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji pomoci
> threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add, je
> nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat nebude -
> Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to opet
> povolim.
>
No, pokud je to tak jak pises, tak ne. Synchronize se pouziva pro
manipulaci v vizualnima komponentama a je v zasade urceno k tomu, kdyz
napr. vlakno (jine nez hlavni) potrebuje cosi vypsat na Form (zmenit
nejaky capture u labelu, nebo tak neco), tak toto realizuje prave pomoci
Synchronize. Coz TList (pokud vim) neni.
A kdyz zajistis, ze s obsahem dane promenne nebude nikdo jiny
manipulovat, dokud vlakno neukonci svoji bohulibou cinnost. Pokud by
hrozilo, ze bude (treba) jine vlakno (napr. hlavni vlakno) chtit
manipulovat s obsahem te promenne, tak pouzij kriticke sekce....
good luck
--
L.V.
jezevec
Odpovedá: Tomas Bradle
13. 8. 2004 11:06
Ja bych jeste doplnil, ze existuje TThreadList, ktery uz ma v sobe zamykani
pomoci kriticke sekce.
Tomas Bradle
t.bradle@worldonline.cz
----- Original Message -----
From: "Ludvik Vlcek" <l.vlcek@noel-plus.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, August 13, 2004 7:38 AM
Subject: Re: Thread safe volani
> Jiri Cincura napsal(a):
> > Ahoj,
> > mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji
pomoci
> > threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add,
je
> > nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat
nebude -
> > Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to
opet
> > povolim.
> >
> No, pokud je to tak jak pises, tak ne. Synchronize se pouziva pro
> manipulaci v vizualnima komponentama a je v zasade urceno k tomu, kdyz
> napr. vlakno (jine nez hlavni) potrebuje cosi vypsat na Form (zmenit
> nejaky capture u labelu, nebo tak neco), tak toto realizuje prave pomoci
> Synchronize. Coz TList (pokud vim) neni.
> A kdyz zajistis, ze s obsahem dane promenne nebude nikdo jiny
> manipulovat, dokud vlakno neukonci svoji bohulibou cinnost. Pokud by
> hrozilo, ze bude (treba) jine vlakno (napr. hlavni vlakno) chtit
> manipulovat s obsahem te promenne, tak pouzij kriticke sekce....
>
> good luck
>
>
Odpovedá: Jiri Cincura
13. 8. 2004 12:03
Tomas Bradle wrote:
> Ja bych jeste doplnil, ze existuje TThreadList, ktery uz ma v sobe
> zamykani pomoci kriticke sekce.
Ano, to znam, jen my slo o to, jestli na to muzu sahat. Pokud bych to chtel,
nejakou synchronizaci si tam udelam.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net